﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IR.Common.Utilities
{
    /// <summary>
    /// Contains classes for columns and a dictionary for Queries
    /// </summary>
    public class Query
    {
        /// <summary>
        /// Dictonary - key = column name, value = value in column
        /// </summary>
        public Dictionary<string, object> Queries { get; set; }

        public Query()
        {
            Queries = new Dictionary<string, object>();
        }

        public static class IdeaColumns
        {
            /// <summary>
            /// *PK* int
            /// </summary>
            public static string IdeaID = "IdeaID";
            /// <summary>
            /// *FK - User* MUser Class
            /// </summary>
            public static string UserCreated = "UserCreated";
            /// <summary>
            /// *FK - Version* MVersion Class
            /// </summary>
            public static string Version = "Version";
            /// <summary>
            /// string
            /// </summary>
            public static string Title = "Title";
            /// <summary>
            /// DateTime struct
            /// </summary>
            public static string DateCreated = "DateCreated";
            /// <summary>
            /// Status enum
            /// </summary>
            public static string Status = "Status";
            /// <summary>
            /// string
            /// </summary>
            public static string Description = "Description";
            /// <summary>
            /// DateTime struct
            /// </summary>
            public static string LastUpdated = "LastUpdated";
            /// <summary>
            /// *FK - User* MUser class
            /// </summary>
            public static string UserAssigned = "UserAssigned";
            /// <summary>
            /// Category enum
            /// </summary>
            public static string Category = "Category";
        }

        public static class UserColumns
        {
            /// <summary>
            /// *PK* string
            /// </summary>
            public static string Username = "Username";
            /// <summary>
            /// string
            /// </summary>
            public static string FName = "FName";
            /// <summary>
            /// string
            /// </summary>
            public static string LName = "LName";
            /// <summary>
            /// string
            /// </summary>
            public static string Email = "Email";
            /// <summary>
            /// string
            /// </summary>
            public static string Password = "Password";
        }

        public static class NotesColumns
        {
            /// <summary>
            /// int
            /// </summary>
            public static string NoteID = "NoteID";
            /// <summary>
            /// *FK - Idea* MIdea class
            /// </summary>
            public static string Idea = "Idea";
            /// <summary>
            /// *FK - User* MUser class
            /// </summary>
            public static string User = "User";
            /// <summary>
            /// DateTime struct
            /// </summary>
            public static string DateCreated = "DateCreated";
            /// <summary>
            /// string
            /// </summary>
            public static string Notes = "Notes";
        }

        public static class VersionColumns
        {
            /// <summary>
            /// *PK* string
            /// </summary>
            public static string VersionID = "VersionID";
            /// <summary>
            /// Status Enum
            /// </summary>
            public static string Status = "Status";
            /// <summary>
            /// DateTime Struct
            /// </summary>
            public static string DateCreated = "DateCreated";
        }
    }
}
